The present invention relates generally to error detection in a communications network and, more particularly, to a method and apparatus for signaling error events between layers of a layered protocol stack.
The Gigabit Passive Optical Network (G-PON) uses a layered protocol stack to implement the communication protocols. Each layer of the protocol stack represents a set of protocols or processes needed for communication between the network nodes. These protocols or processes are typically implemented by hardware or firmware, with exceptions typically handled by firmware or software. The organization of the protocols into a layered protocol stack enables modifications in one layer without affecting the applications in other layers.
When data is sent from one node to another, it is passed down through the layers of the protocol stack at the originating node, transmitted over the physical medium to the destination node, and passed back up the protocol stack at the destination node. As the data travels down the protocol stack at the originating node, each layer adds a header containing information used by the protocols at that layer. As the data travels up the protocol stack at the destination node, the header information is stripped off at each layer.
It is typical for one or more layers of the protocol stack to implement an error detection and/or error correction capability. Error detection and/or correction is implemented by embedding redundant information in the data that is transmitted by the particular protocol layer. The redundant information enables the detection and/or correction of errors at the receiver. If an uncorrectable error is detected, the general practice is to silently discard the data containing the error without any notification to the higher layer protocols. For some applications, a retransmission protocol may be implemented at a higher protocol level to repeat a previously-transmitted request or to request retransmission of missing data.
The typical practice of silently discarding data packets by lower protocol layers and using retransmission protocols at the higher protocol layers has several drawbacks. First, retransmission is not useful for many real-time applications in which timeliness is as important as correctness. Second, for non real-time applications, additional delay is introduced by requiring the higher protocol layer to wait for expiration of a timer before initiating the retransmission. Third, some of the discarded data may still be useful to the higher protocol layer. Discarding such means that system throughput will be reduced by unnecessary retransmissions. Fourth, the loss of part of a structured data stream may cause loss of synchronization, leading to further losses in portions of the data stream that contain no errors, but whose structure cannot be deduced until the receiving device regains synchronization.
Accordingly, there is a need for new techniques to prevent or mitigate data loss when unrecoverable data errors occur.